class Student:
    native_place = '吉林'  # 直接写在类里的变量，叫做类属性

    # 初始化方法
    def __init__(self, name, age):
        self.name = name  # self.name称为实体属性，这里是进行了一个赋值操作
        self.age = age

        # 这个self你写也得写，你不写它也在

    def eat(self):  # 叫实例方法       值得一提，它的形式和函数的定义有点像，但是在类之外定义的才叫函数，在类里定义的叫方法
        print('学生在吃饭...')

    # 静态方法
    @staticmethod
    def method():  # 静方法的（）是不允许写self的
        print('我使用了staticmethod进行修饰，所以我是静态方法')

    # 类方法
    @classmethod
    def cm(cls):
        print('我是类方法，因为我使用了classmethod进行修饰')


# 这个才叫函数
def drink():
    print('喝水')


# 创建Student类的对象

stu1 = Student('张三', 20)
stu1.eat()       #对象名，方法名（）
print(stu1.name)
print(stu1.age)
print('--------------')
Student.eat(stu1)  #37行代码和33代码效果相同
              #类名，方法名（类的对象）-->实际上就是方法定义处的self
